Git 是一個分散式版本控制軟體,它的作用就是讓工程師在開發時可以共同參與一個專案,而且不需要在相同的網路系統下作業。所以當在沒有網路環境時,還是可以做分支與合併。而且其系統代碼庫能在多個電腦上備份,而多個位置的代碼庫再透過其他機制來達到同步。
今天小銘在玩一款的遊戲,他的習慣是遇到重要時刻就會立刻存檔,這就是Git的基本概念,就是存檔沒錯。但Git的「存檔系統」可是非常酷炫,不僅僅是你自己能存檔,你還能和朋友一起協作儲存,每個人都能看到所有的變更紀錄,並且共享遊戲進度。現在想像一下,你們在玩多人模式,今天你休息沒上線,而你的朋友在推進度。當他們把進度存檔後,你也能共享他們的成就,是不是超棒?不過,這種存檔系統自由度很高,也因此可能出現一些麻煩,比如不小心覆蓋了朋友的存檔。所以呢,這個系統有點複雜,因為要避免這些意外,Git就有一套精密的存檔機制來保障大家的進度不會被亂改。
Git 的誕生與開源界的發展息息相關。它於 2005 年由 Linus Torvalds 創建 (同時也是 Linux 操作系統的創造者),當時 Linux 的開發社群使用一個叫做 BitKeeper 的分散式版本控制軟體。但於 2002 - 2005 年時,BitKeeper 的公司收回了給 Linux 開發者的免費授權,於是 Linus 決定要搞一個自己的替代品。
Linus 以十天的時間開發出了 Git,它不僅解決了 Linux 團隊面臨的問題,還提供了高速、高效的版本控制能力。從那時起,Git 很快就成為了各大專案中首選的版本控制工具。
本身設計出身的我,其實已經養成了隨時存檔的習慣(很多悲慘經驗)。自從學了前端發現git這東西,真的是滿心歡喜,能滿足我一直存檔的癖好。所以剛踏入前端的朋友,此物是必學的,加油各位。
BitKeeper 的競爭對手是 Git 和 Mercurial,它們都是分散式版本控制軟體,還有另外一種版本控制工具叫做集中式,比方說 CVS 或 SVN。其中最大差異是:
優點:
缺點:
優點:
缺點:
Git 的故事:這一次沒這麼好玩 | 軟體考古學家
Git - Wikipedia
Distributed version control - Wikipedia
Linus Torvalds - Wikipedia
Apache Subversion - Wikipedia
Subversion vs Git: The Pros and Cons | Hackbright Academy